Layered Architecture
/mrsekut-book-4873119820/162 (10章 レイヤードアーキテクチャ)
https://gyazo.com/f5e9f0e4cdda56af9c97c0e133f47a47
#WIP
/mrsekut-book-4873119820/164 (10.2 層の分離)
開放レイヤー
レイヤーのすり抜けを許可するやつ
閉鎖レイヤー
レイヤーのスキップを許可しないやつ
Architecture Sinkholeアンチパターン
何もしない層をただ通過する感じのやつ
形骸的な無意味な層があるやつ
/mrsekut-book-4873119820/167
Layered ArchitectureのLayer構造の意味
The Clean Architecture
ヘキサゴナルアーキテクチャ
オニオンアーキテクチャ
個々のpackageで必ずしもLayerを共通にする必要はないと思う
例えば、feature AではUseCase層があるが、feature Bではない、とかでも良い
必要になったら層を付け足せば良い
何もしていない層があっても無駄
記述量が増えるだけでなんの嬉しさも享受しない
/kawasima/レイヤードアーキテクチャ
関数型指向のLayered Architecture
https://github.com/yukitos/notes/blob/master/A_recipe_for_a_functional_app/Organizing%20modules%20in%20a%20project.md#レイヤー設計に対する関数的アプローチ
これ名前ついてないんだろうか #??
Layerを分けるところまでは同じだが、各層で「型」「関数」の2層に分けるのが異なる
よってLayerは、2倍になる
この時点ですでに面白いが、型と関数に分けたことによって、層の順序を入れ替えることができ、それによって依存の向きを完璧に1方向に揃えられる
OOPの格言でも知られる依存関係逆転の原則 (DIP)みたいなのが不要になる